package com.wanxi;

public class FindTheSeven {

    public static void main(String[] args) {
//        需求：
//        规则是：从任意一个数字开始报数，当你要报的数字包含7或者是7的倍数时都要说：过。
//        为了帮助大家更好的玩这个游戏，这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
//        这样，大家将来在玩游戏的时候，就知道哪些数据要说：过。
//        如何测试？
//        一组样例数据:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
//        用这组数据作为测试数据来验证自己的算法是否正确。


        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 71, 72, 77, 87, 97, 99, 124, 137, 712, 979, 1117, 1171, 1711, 7111, 7777};
        for (int i = 0; i < array.length; i++) {
            int number = array[i];

            //1、先找出7及7的倍数
            if (doubleSeven(number)) {
                Util.print("{1}是7的倍数，跳过",number);
                continue;
            }
            //2、找包含7的数。
            if (containSeven(number)) {
                Util.print("{1}包含7，跳过",number);
                continue;
            }


//            if (zeroToHundred(number)) {
//                //1、先找出7及7的倍数
//                if (doubleSeven(number)) {
//                    System.out.println(number + "是7的倍数，跳过");
//                    continue;
//                }
//                //2、找包含7的数。
//                if (containSeven(number)) {
//                    System.out.println(number + "包含7，跳过");
//                    continue;
//                }
//            }
//
//
//            if (hundredToThousand(number)) {
//                //1、先找出7及7的倍数
//                if (doubleSeven(number)) {
//                    System.out.println(number + "是7的倍数，跳过");
//                    continue;
//                }
//                //2、找包含7的数。
//                if (containSeven(number)) {
//                    System.out.println(number + "包含7，跳过");
//                    continue;
//                }
//            }
//
//            if (thousandToTenThousand(number)) {
//                //1、先找出7及7的倍数
//                if (doubleSeven(number)) {
//                    System.out.println(number + "是7的倍数，跳过");
//                    continue;
//                }
//                //2、找包含7的数。
//                if (containSeven(number)) {
//                    System.out.println(number + "包含7，跳过");
//                    continue;
//                }
//            }




            Util.print("{1}报数{1}",number);

        }

    }








//    private static boolean zeroToHundred(int number) {
//        if (number >= 0 && number < 100) {
//                return true;
//        }
//        return false;
//    }
//
//
//    private static boolean hundredToThousand(int number) {
//        if (number >= 100 && number < 1000) {
//            return true;
//        }
//        return false;
//    }
//
//
//    private static boolean thousandToTenThousand(int number) {
//        if (number >= 1000 && number < 10000) {
//            return true;
//        }
//        return false;
//    }






    private static boolean containSeven(int number) {
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;
        int qian = number / 1000 % 10;
        if (ge == 7 || shi == 7 || bai == 7 || qian == 7) {
            return true;
        }
        return false;
    }

    private static boolean doubleSeven(int number) {
        if (number % 7 == 0) {
            return true;
        }
        return false;
    }

}
